home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Applications / Newswatcher 2.0b22 / NW Source / Source / menus.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-10-26  |  12.5 KB  |  546 lines  |  [TEXT/MMCC]

  1. #define kMBarID                128            /* resource id of MBAR rsrc */
  2. #define kEntireMenuMask        0x00000001    /* mask for enabling an entire menu */
  3.  
  4.  
  5.  
  6. /*    Apple menu. */
  7.  
  8. #define kAppleMenu                128
  9.  
  10. #define kAboutNewsWatcherItem    1
  11.  
  12. #define kAppleAllEnabled            0xfffffffb
  13. #define kAppleAllDisabled            0
  14. #define kAppleOnlyAboutDisabled        0xfffffff9
  15.  
  16.  
  17.  
  18. /*    File menu. */
  19.  
  20. #define kFileMenu                129
  21.  
  22. #define kNewGroupWindowItem            1
  23. #define kOpenItem                    2
  24. #define kCloseItem                    3
  25. #define kSaveItem                    5
  26. #define kSaveAsItem                    6
  27. #define kAppendItem                    7
  28. #define kPageSetupItem                9
  29. #define kPrintItem                    10
  30. #define kPreferencesItem            12
  31. #define kQuitItem                    14
  32.  
  33. #define kNumFileMenuItems            14
  34.  
  35. #define    kNewGroupWindowMask            (1L << kNewGroupWindowItem)
  36. #define kOpenMask                    (1L << kOpenItem)
  37. #define kCloseMask                    (1L << kCloseItem)
  38. #define kSaveMask                    (1L << kSaveItem)
  39. #define kSaveAsMask                    (1L << kSaveAsItem)
  40. #define kAppendMask                    (1L << kAppendItem)
  41. #define kPageSetupMask                (1L << kPageSetupItem)
  42. #define kPrintMask                    (1L << kPrintItem)
  43. #define kPreferencesMask            (1L << kPreferencesItem)
  44. #define kQuitMask                    (1L << kQuitItem)
  45.  
  46. #define kNoneFileEnabled ( \
  47.     kNewGroupWindowMask | \
  48.     kOpenMask | \
  49.     kPageSetupMask | \
  50.     kPreferencesMask | \
  51.     kQuitMask)
  52.     
  53. #define kDAFileEnabled ( \
  54.     kNewGroupWindowMask | \
  55.     kOpenMask | \
  56.     kPageSetupMask | \
  57.     kPreferencesMask | \
  58.     kQuitMask)
  59.     
  60. #define kGroupFileEnabled ( \
  61.     kNewGroupWindowMask | \
  62.     kOpenMask | \
  63.     kCloseMask | \
  64.     kPageSetupMask | \
  65.     kPreferencesMask | \
  66.     kQuitMask)
  67.     
  68. #define kNewGroupFileEnabled ( \
  69.     kNewGroupWindowMask | \
  70.     kOpenMask | \
  71.     kCloseMask | \
  72.     kPageSetupMask | \
  73.     kPreferencesMask | \
  74.     kQuitMask)
  75.         
  76. #define kUserGroupFileEnabled ( \
  77.     kNewGroupWindowMask | \
  78.     kOpenMask | \
  79.     kCloseMask | \
  80.     kSaveMask | \
  81.     kSaveAsMask | \
  82.     kPageSetupMask | \
  83.     kPreferencesMask | \
  84.     kQuitMask)
  85.     
  86. #define kSubjectFileEnabled ( \
  87.     kNewGroupWindowMask | \
  88.     kOpenMask | \
  89.     kCloseMask | \
  90.     kSaveMask | \
  91.     kSaveAsMask | \
  92.     kAppendMask | \
  93.     kPageSetupMask | \
  94.     kPrintMask | \
  95.     kPreferencesMask | \
  96.     kQuitMask)
  97.     
  98. #define kArticleFileEnabled ( \
  99.     kNewGroupWindowMask | \
  100.     kOpenMask | \
  101.     kCloseMask | \
  102.     kSaveMask | \
  103.     kSaveAsMask | \
  104.     kAppendMask | \
  105.     kPageSetupMask | \
  106.     kPrintMask | \
  107.     kPreferencesMask | \
  108.     kQuitMask)
  109.     
  110. #define kMessageFileEnabled ( \
  111.     kNewGroupWindowMask | \
  112.     kOpenMask | \
  113.     kCloseMask | \
  114.     kSaveMask | \
  115.     kSaveAsMask | \
  116.     kPageSetupMask | \
  117.     kPrintMask | \
  118.     kPreferencesMask | \
  119.     kQuitMask)
  120.     
  121. #define kTextFileEnabled ( \
  122.     kNewGroupWindowMask | \
  123.     kOpenMask | \
  124.     kCloseMask | \
  125.     kSaveMask | \
  126.     kSaveAsMask | \
  127.     kPageSetupMask | \
  128.     kPrintMask | \
  129.     kPreferencesMask | \
  130.     kQuitMask)
  131.     
  132. #define kStartupBadFileEnabled ( \
  133.     kPreferencesMask | \
  134.     kQuitMask)
  135.  
  136.  
  137.  
  138. /*    Edit menu. */
  139.  
  140. #define kEditMenu                130
  141.  
  142. #define kUndoItem                    1
  143. #define kCutItem                    3
  144. #define kCopyItem                    4
  145. #define kPasteItem                    5
  146. #define kPasteAsQuotationItem        6
  147. #define kClearItem                    7
  148. #define kSelectAllItem                8
  149. #define kDeselectAllItem            9
  150. #define kFindItem                    11
  151. #define kFindAgainItem                12
  152. #define kEnterSelectionItem            13
  153. #define kShowHideDetailsItem        15
  154. #define kRot13Item                    16
  155. #define kInsertSpoilerCharacterItem    17
  156. #define kWrapItem                    19
  157. #define kUnwrapItem                    20
  158.  
  159. #define kNumEditMenuItems        20
  160.  
  161. #define kUndoMask                    (1L << kUndoItem)
  162. #define kCutMask                    (1L << kCutItem)
  163. #define kCopyMask                    (1L << kCopyItem)
  164. #define kPasteMask                    (1L << kPasteItem)
  165. #define kPasteAsQuotationMask        (1L << kPasteAsQuotationItem)
  166. #define kClearMask                    (1L << kClearItem)
  167. #define kSelectAllMask                (1L << kSelectAllItem)
  168. #define kDeselectAllMask            (1L << kDeselectAllItem)
  169. #define kFindMask                    (1L << kFindItem)
  170. #define kFindAgainMask                (1L << kFindAgainItem)
  171. #define kEnterSelectionMask            (1L << kEnterSelectionItem)
  172. #define kShowHideDetailsMask        (1L << kShowHideDetailsItem)
  173. #define kRot13Mask                    (1L << kRot13Item)
  174. #define kInsertSpoilerCharacterMask    (1L << kInsertSpoilerCharacterItem)
  175. #define kWrapMask                    (1L << kWrapItem)
  176. #define kUnwrapMask                    (1L << kUnwrapItem)
  177.  
  178. #define kNoneEditEnabled        0
  179.  
  180. #define kEditOnlyCopyEnabled ( \
  181.     kCopyMask)
  182.  
  183. #define kDAEditEnabled ( \
  184.     kUndoMask | \
  185.     kCutMask | \
  186.     kCopyMask | \
  187.     kPasteMask | \
  188.     kClearMask)
  189.     
  190. #define kGroupEditEnabled ( \
  191.     kCopyMask | \
  192.     kSelectAllMask | \
  193.     kDeselectAllMask | \
  194.     kFindMask | \
  195.     kFindAgainMask )
  196.     
  197. #define kNewGroupEditEnabled ( \
  198.     kCopyMask | \
  199.     kSelectAllMask | \
  200.     kDeselectAllMask | \
  201.     kFindMask | \
  202.     kFindAgainMask)
  203.     
  204. #define kUserGroupEditEnabled ( \
  205.     kCutMask | \
  206.     kCopyMask | \
  207.     kPasteMask | \
  208.     kClearMask | \
  209.     kSelectAllMask | \
  210.     kDeselectAllMask | \
  211.     kFindMask | \
  212.     kFindAgainMask)
  213.     
  214. #define kSubjectEditEnabled ( \
  215.     kSelectAllMask | \
  216.     kDeselectAllMask | \
  217.     kFindMask | \
  218.     kFindAgainMask)
  219.     
  220. #define kArticleEditEnabled ( \
  221.     kCopyMask | \
  222.     kSelectAllMask | \
  223.     kFindMask | \
  224.     kFindAgainMask | \
  225.     kEnterSelectionMask | \
  226.     kShowHideDetailsMask | \
  227.     kRot13Mask)
  228.     
  229. #define kMessageEditEnabled ( \
  230.     kCutMask | \
  231.     kCopyMask | \
  232.     kPasteMask | \
  233.     kPasteAsQuotationMask | \
  234.     kClearMask | \
  235.     kSelectAllMask | \
  236.     kFindMask | \
  237.     kFindAgainMask | \
  238.     kEnterSelectionMask | \
  239.     kShowHideDetailsMask | \
  240.     kRot13Mask | \
  241.     kInsertSpoilerCharacterMask | \
  242.     kWrapMask | \
  243.     kUnwrapMask)
  244.     
  245. #define kTextEditEnabled ( \
  246.     kCopyMask | \
  247.     kSelectAllMask | \
  248.     kFindMask | \
  249.     kFindAgainMask | \
  250.     kEnterSelectionMask)
  251.     
  252. #define kStartupBadEditEnabled    0
  253.  
  254.  
  255.  
  256. /*    News menu. */
  257.  
  258. #define kNewsMenu                131
  259.  
  260. #define kNextArticleItem            1
  261. #define kNextThreadItem                2
  262. #define kNextGroupItem                3
  263. #define kMarkReadItem                5
  264. #define kMarkUnreadItem                6
  265. #define kMarkOthersReadItem            7
  266. #define kNewMessageItem                9
  267. #define kReplyItem                    10
  268. #define kForwardItem                11
  269. #define kRedirectItem                12
  270. #define kSendMessageItem            13
  271. #define kCheckForNewArticlesItem    15
  272.  
  273. #define kNumNewsMenuItems        15
  274.  
  275. #define kNextArticleMask            (1L << kNextArticleItem)
  276. #define kNextThreadMask                (1L << kNextThreadItem)
  277. #define kNextGroupMask                (1L << kNextGroupItem)
  278. #define kMarkReadMask                (1L << kMarkReadItem)
  279. #define kMarkUnreadMask                (1L << kMarkUnreadItem)
  280. #define kMarkOthersReadMask            (1L << kMarkOthersReadItem)
  281. #define kNewMessageMask                (1L << kNewMessageItem)
  282. #define kReplyMask                    (1L << kReplyItem)
  283. #define kForwardMask                (1L << kForwardItem)
  284. #define kRedirectMask                (1L << kRedirectItem)
  285. #define kSendMessageMask            (1L << kSendMessageItem)
  286. #define kCheckForNewArticlesMask    (1L << kCheckForNewArticlesItem)
  287.  
  288. #define kNoneNewsEnabled ( \
  289.     kNewMessageMask)
  290.     
  291. #define kDANewsEnabled ( \
  292.     kNewMessageMask)
  293.     
  294. #define kGroupNewsEnabled ( \
  295.     kNextArticleMask | \
  296.     kNextThreadMask | \
  297.     kNextGroupMask | \
  298.     kNewMessageMask)
  299.     
  300. #define kNewGroupNewsEnabled ( \
  301.     kNextArticleMask | \
  302.     kNextThreadMask | \
  303.     kNextGroupMask | \
  304.     kNewMessageMask)
  305.     
  306. #define kUserGroupNewsEnabled ( \
  307.     kNextArticleMask | \
  308.     kNextThreadMask | \
  309.     kNextGroupMask | \
  310.     kMarkReadMask | \
  311.     kMarkUnreadMask | \
  312.     kNewMessageMask | \
  313.     kCheckForNewArticlesMask)
  314.     
  315. #define kSubjectNewsEnabled ( \
  316.     kNextArticleMask | \
  317.     kNextThreadMask | \
  318.     kNextGroupMask | \
  319.     kMarkReadMask | \
  320.     kMarkUnreadMask | \
  321.     kMarkOthersReadMask | \
  322.     kReplyMask | \
  323.     kForwardMask | \
  324.     kRedirectMask | \
  325.     kNewMessageMask)
  326.     
  327. #define kArticleNewsEnabled ( \
  328.     kNextArticleMask | \
  329.     kNextThreadMask | \
  330.     kNextGroupMask | \
  331.     kMarkReadMask | \
  332.     kMarkUnreadMask | \
  333.     kReplyMask | \
  334.     kForwardMask | \
  335.     kRedirectMask | \
  336.     kNewMessageMask)
  337.     
  338. #define kArticleNewsEnabledNoParent    ( \
  339.     kReplyMask | \
  340.     kForwardMask | \
  341.     kRedirectMask | \
  342.     kNewMessageMask)
  343.     
  344. #define kMessageNewsEnabled ( \
  345.     kNewMessageMask | \
  346.     kSendMessageMask)
  347.     
  348. #define kTextNewsEnabled ( \
  349.     kNewMessageMask)
  350.     
  351. #define kStartupBadNewsEnabled    0
  352.  
  353.  
  354.  
  355. /*    Special menu. */
  356.  
  357. #define kSpecialMenu            132
  358.  
  359. #define kExtractBinariesItem            1
  360. #define kExtractBinariesManuallyItem    2
  361. #define kGetGroupListFromHostItem        4
  362. #define kSendGroupListToHostItem        5
  363. #define kOpenAllReferencesItem            7
  364. #define kSearchItem                        8
  365. #define kGetServerInfoItem                9
  366. #define kCancelArticleItem                10
  367. #define kOpenURLItem                    11
  368. #define kCheckForNewGroupsItem            13
  369. #define kCheckForDeletedGroupsItem        14
  370. #define kRebuildFullGroupListItem        15
  371. #define kSubscribeItem                    17
  372. #define kUnsubscribeItem                18
  373.  
  374. #define kNumSpecialMenuItems    18
  375.  
  376. #define kExtractBinariesMask            (1L << kExtractBinariesItem)
  377. #define kExtractBinariesManuallyMask    (1L << kExtractBinariesManuallyItem)
  378. #define kGetGroupListFromHostMask        (1L << kGetGroupListFromHostItem)
  379. #define kSendGroupListToHostMask        (1L << kSendGroupListToHostItem)
  380. #define kOpenAllReferencesMask            (1L << kOpenAllReferencesItem)
  381. #define kSearchMask                        (1L << kSearchItem)
  382. #define kGetServerInfoMask                (1L << kGetServerInfoItem)
  383. #define kCancelArticleMask                (1L << kCancelArticleItem)
  384. #define kOpenURLMask                    (1L << kOpenURLItem)
  385. #define kCheckForNewGroupsMask            (1L << kCheckForNewGroupsItem)
  386. #define kCheckForDeletedGroupsMask        (1L << kCheckForDeletedGroupsItem)
  387. #define kRebuildFullGroupListMask        (1L << kRebuildFullGroupListItem)
  388. #define kSubscribeMask                    (1L << kSubscribeItem)
  389. #define kUnsubscribeMask                (1L << kUnsubscribeItem)
  390.  
  391. #define kNoneSpecialEnabled    ( \
  392.     kGetGroupListFromHostMask | \
  393.     kGetServerInfoMask | \
  394.     kCheckForNewGroupsMask | \
  395.     kCheckForDeletedGroupsMask | \
  396.     kRebuildFullGroupListMask)
  397.  
  398. #define kDASpecialEnabled ( \
  399.     kGetGroupListFromHostMask | \
  400.     kGetServerInfoMask | \
  401.     kCheckForNewGroupsMask | \
  402.     kCheckForDeletedGroupsMask | \
  403.     kRebuildFullGroupListMask)
  404.     
  405. #define kGroupSpecialEnabled (\
  406.     kGetGroupListFromHostMask | \
  407.     kSearchMask | \
  408.     kGetServerInfoMask | \
  409.     kCheckForNewGroupsMask | \
  410.     kCheckForDeletedGroupsMask | \
  411.     kRebuildFullGroupListMask | \
  412.     kSubscribeMask)
  413.     
  414. #define kNewGroupSpecialEnabled    (\
  415.     kGetGroupListFromHostMask | \
  416.     kSearchMask | \
  417.     kGetServerInfoMask | \
  418.     kCheckForNewGroupsMask | \
  419.     kCheckForDeletedGroupsMask | \
  420.     kRebuildFullGroupListMask | \
  421.     kSubscribeMask)
  422.     
  423. #define kUserGroupSpecialEnabled (\
  424.     kGetGroupListFromHostMask | \
  425.     kSendGroupListToHostMask | \
  426.     kSearchMask | \
  427.     kGetServerInfoMask | \
  428.     kCheckForNewGroupsMask | \
  429.     kCheckForDeletedGroupsMask | \
  430.     kRebuildFullGroupListMask | \
  431.     kUnsubscribeMask)
  432.     
  433. #define kSubjectSpecialEnabled    (\
  434.     kExtractBinariesMask | \
  435.     kExtractBinariesManuallyMask | \
  436.     kGetGroupListFromHostMask | \
  437.     kSearchMask | \
  438.     kGetServerInfoMask | \
  439.     kCancelArticleMask | \
  440.     kCheckForNewGroupsMask | \
  441.     kCheckForDeletedGroupsMask | \
  442.     kRebuildFullGroupListMask)
  443.     
  444. #define kArticleSpecialEnabled    (\
  445.     kExtractBinariesMask | \
  446.     kGetGroupListFromHostMask | \
  447.     kOpenAllReferencesMask | \
  448.     kSearchMask | \
  449.     kGetServerInfoMask | \
  450.     kCancelArticleMask | \
  451.     kOpenURLMask | \
  452.     kCheckForNewGroupsMask | \
  453.     kCheckForDeletedGroupsMask | \
  454.     kRebuildFullGroupListMask)
  455.     
  456. #define kMessageSpecialEnabled (\
  457.     kGetGroupListFromHostMask | \
  458.     kGetServerInfoMask | \
  459.     kOpenURLMask | \
  460.     kCheckForNewGroupsMask | \
  461.     kCheckForDeletedGroupsMask | \
  462.     kRebuildFullGroupListMask)
  463.     
  464. #define kTextSpecialEnabled    (\
  465.     kGetGroupListFromHostMask | \
  466.     kGetServerInfoMask | \
  467.     kOpenURLMask | \
  468.     kCheckForNewGroupsMask | \
  469.     kCheckForDeletedGroupsMask | \
  470.     kRebuildFullGroupListMask)
  471.     
  472. #define kStartupBadSpecialEnabled    0
  473.  
  474.  
  475.  
  476. /*    Windows menu. */
  477.  
  478. #define kWindMenu                133
  479.  
  480. #define kCycleWindowsItem            1
  481. #define kZoomWindowItem                2
  482. #define kShowHideFullGroupListItem    4
  483. #define kFirstOpenWindItem            6
  484.  
  485. #define kNumWindMenuItems        4
  486.  
  487. #define kCycleWindowsMask            (1L << kCycleWindowsItem)
  488. #define kZoomWindowMask                (1L << kZoomWindowItem)
  489. #define kShowHideFullGroupListMask    (1L << kShowHideFullGroupListItem)
  490.  
  491. #define kNoneWindEnabled ( \
  492.     kShowHideFullGroupListMask)
  493.  
  494. #define kDAWindEnabled ( \
  495.     kShowHideFullGroupListMask)
  496.     
  497. #define kGroupWindEnabled ( \
  498.     kCycleWindowsMask | \
  499.     kZoomWindowMask | \
  500.     kShowHideFullGroupListMask)
  501.     
  502. #define kNewGroupWindEnabled ( \
  503.     kCycleWindowsMask | \
  504.     kZoomWindowMask | \
  505.     kShowHideFullGroupListMask)
  506.     
  507. #define kUserGroupWindEnabled ( \
  508.     kCycleWindowsMask | \
  509.     kZoomWindowMask | \
  510.     kShowHideFullGroupListMask)
  511.     
  512. #define kSubjectWindEnabled ( \
  513.     kCycleWindowsMask | \
  514.     kZoomWindowMask | \
  515.     kShowHideFullGroupListMask)
  516.     
  517. #define kArticleWindEnabled ( \
  518.     kCycleWindowsMask | \
  519.     kZoomWindowMask | \
  520.     kShowHideFullGroupListMask)
  521.     
  522. #define kMessageWindEnabled    ( \
  523.     kCycleWindowsMask | \
  524.     kZoomWindowMask | \
  525.     kShowHideFullGroupListMask)
  526.     
  527. #define kTextWindEnabled ( \
  528.     kCycleWindowsMask | \
  529.     kZoomWindowMask | \
  530.     kShowHideFullGroupListMask)
  531.     
  532. #define kStartupBadWindEnabled    0
  533.  
  534.  
  535. void SetMenusTo (
  536.     unsigned long newAppleMenuState,
  537.     unsigned long newFileMenuState, 
  538.     unsigned long newEditMenuState,
  539.     unsigned long newNewsMenuState, 
  540.     unsigned long newSpecialMenuState, 
  541.     unsigned long newWindMenuState);
  542. void SetWindowsMenuShowHideFullGroupList (Boolean show);
  543. void SetEditMenuShowHideDetails (Boolean show);
  544. void AdjustExtractBinariesCommand (void);
  545. void AdjustCycleWindowsCommand (void);
  546.